The present disclosure relates to access to content of media among applications in an application execution environment.
An application execution environment is a virtualization environment that works in conjunction with the native services (e.g., an operating system) of a computing device to provide a consistent well-defined environment in which software applications can be loaded and executed. An application execution environment typically includes facilities such as memory management (e.g., garbage collection), standard libraries, media decoders, user interface frameworks and input-output interfaces. An application designed to run within an application execution environment can often be developed rapidly because developers can rely on the consistency of the application execution environment—even if the environment itself exists on widely varying systems. For example, applications can be specified using pre-defined syntactic structures such as a programming language (e.g., source code) or can include well defined virtual instructions (e.g., platform-independent bytecode, such as Macromedia Flash® bytecode). To run an application the application execution environment decodes the application into instructions and executes the instructions. Application execution environments are sometimes referred to as interpreters or virtual machines.
An application can be associated with an isolation environment which is provided by the application execution environment. The isolation environment prevents the application from accessing, modifying or interfering with another application in the same application execution environment.
While running, an application is typically allowed to identify a media asset (e.g., an image, a video or a sound) and to request that the application execution environment play the content of the media asset to a user. Another application running in the same application execution environment may be allowed to halt or alter the playing of the media item.